package com.tbit.main.dao.core;

import com.tbit.main.pojo.GeoreGion;
import com.tbit.main.pojo.GeoreGionBound;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author LMY
 * @create 2020-11-23 14:38
 * 围栏分区绑定
 */
public interface GeoreGionBoundDao {

    /**
     * 绑定分区
     *
     * @param georeGionBound
     */
    void binding(GeoreGionBound georeGionBound);

    /**
     * 绑定分区
     *
     * @param map
     */
    void bindingBatch(List<Map<String, Object>> map);

    /**
     * 解绑分区
     *
     * @param georeGionBound
     */
    void unbind(GeoreGionBound georeGionBound);

    /**
     * 查找绑定
     *
     * @param params
     * @return
     */
    List<GeoreGionBound> getGeoreGionBound(Map<String, Object> params);

    /**
     * 查找绑定
     *
     * @param regionId
     * @return
     */
    List<GeoreGionBound> getBoundRegionIds(@Param("regionId") String regionId);

    /**
     * 修改分区负责人
     *
     * @param params
     */
    void updateUnbind(Map<String, Object> params);

    /**
     * 根据分区id查询人员
     *
     * @param regionId
     * @return
     */
    List<Map<String, Object>> getGroupRegionId(@Param("regionId") String regionId);

    /**
     * 查询所有绑定
     *
     * @return
     */
    List<Map<String, Object>> getBoundAll();

    void deleteByUserId(@Param("accountUserId") Integer accountUserId);

    /**
     * 根据accountId和名称查询分区
     *
     * @param accountId  区域id
     * @param regionName 分区名称
     */
    GeoreGion getByGeoRegionName(@Param("accountId") Integer accountId, @Param("regionName") String regionName);
}
